Object Oriented Programming עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון
|
|
- Ezra Goodman
- 5 years ago
- Views:
Transcription
1 Object Oriented Programming עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון
2 2 General Information Instructor: Azzam Maraee Office: building 37, room Course WEB site:
3 3 Book and credit for the slides We will mostly follow: The slides are based on Timothy Budds s slides for the book
4 4 Grading Home work: Programming exercises 40% of the total grade Via the submission system In class exam: Theoretical problems 60% of the total grade
5 5 Roadmap In this chapter we begin our exploration of object-oriented programming. Among the topics we will explore: Historical survey of computing and programming What is a paradigm? Why is this term used to describe the object-oriented approach to problem solving? How does language influence thought? Characteristics of the object-oriented way of thinking
6 Brief Historical Survey 2400 BC - Abacus (counting frame). 300 BC - The algorithm of Euclid for computing GCD(x,y) 100 BC - Antikythera mechanism al-khwārizmī systematic approach to solving equations led to algebra.
7 Brief Historical Survey (cont.) 1842 Ada Lovelace writes programs for Babbage s analytical engine The first electronic computer s The software crisis The United States Department of Defense define Steelman language requirements that lead to development of Ada programming language s - Object Oriented Programming becomes dominant programming methodology.
8 8 Conflicting Objectives Along the way, we'll try to convince you the validity of the following two assertions: OOP is a revolutionary idea, totally unlike anything that has come before in programming languages OOP is an evolutionary step, following naturally on the heels of earlier programming abstractions
9 9 Why has OOP remained popular for so long? OOP has been the dominant programming paradigm for more than twenty years. Why is it so popular? Proven record of success Scales well from small problems to large Resonant similarity to techniques for thinking about problems in other domains Nevertheless, programming is still a task that requires skill and learning
10 10 The Software Werewolf Software is like a werewolf it looks normal until the moon comes out and it turns into a monster Missed deadlines Blown budgets Buggy software We want the silver bullet to kill the monster something to make software costs drop as rapidly as computer hardware costs do.
11 11 There Is No Silver Bullet! As we look to the horizon of a decade hence, we see no silver bullet. There is no single development, in either essence, technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity
12 12 What is software and What is the Software Crisis? Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market What is the software crisis? Major projects are meaning fully late. Software costs more than predicted. Software is difficult to maintain. Poor performance. While hardware costs were decreasing, software costs were rising. requires techniques to control the complexity o large software systems.
13 13 A New Paradigm Object-oriented programming is often described as a new paradigm. We start by considering the definition of this term: Typical example or pattern of something; a model There is a new paradigm for public art in this country A worldview underlying the theories and methodology of a particular scientific subject The discovery of universal gravitation became the paradigm of successful science A set of linguistic items that form mutually exclusive choices in particular syntactic roles English determiners form a paradigm: we can say a book or his book but not a his book. A table of all the inflected forms of a particular verb, noun, or adjective, serving as a model for other words of the same conjugation or declension What does this have to do with computer programming languages?
14 14 "First, the new candidate must seem to resolve some outstanding and generally recognized problem that can be met in no other way. Second, the new paradigm must promise to preserve a relatively large part of the concrete problem solving activity that has accrued to science through its predecessors."
15 15 Programming Paradigm A way of conceptualizing what it means to perform computation and how tasks to be carried out on the computer should be structured and organized. Robert W. Floyd Imperative : Functional : Machine-model based Equations; Expression Evaluation Logical : First-order Logic Deduction Object-Oriented : Programming with Data Types
16 16 Sapir-Whorf Hypothesis Language, Thought, and Reality Selected Writings of Benjamin Lee Whorf language defines the way a person behaves and thinks: Eskimo (or Inuit) languages and snow Arabic languages and camel George Orwell's book 1984: a language entitled "newspeak" created to change the way people think about the government What is true of natural languages is even more true of artificial computer languages
17 17 Example from Computer Languages A student working in DNA research had the task of finding repeated sequences of M values in a long sequence of values: ACTCGGATCTTGCATTTCGGCAATTGGACCCTGACTTGGCCA Wrote the simplest (and therefore, most efficient?) program: DO 10 I = 1, N-M DO 10 J = I+1, N-M FOUND =.TRUE. DO 20 K = 1, M 20 IF X[I+K-1].NE. X[J+K-1] THEN FOUND =.FALSE. IF FOUND THEN CONTINUE Took a depressingly long time.
18 18 A Better Solution A friend writing in APL found a much better solution by rearranging the data and sorting: A C T C G G positions 1 to M C T C G G A positions 2 to M+1 T C G G A T positions 3 to M+2 C G G A T T positions 4 to M+3 G G A T T C positions 5 to M+4 G A T T C T positions 6 to M+5... T G G A C C G G A C C C... Ran surprisingly quickly, thesis saved
19 19 What lead to the discovery? Why did the APL programmer find the better solution? Fortran programmer was blinded by a culture that valued loops, simple programs Sorting is a built-in operation in APL, good programmers try to find novel uses for sorting The fundamental point is that the language you speak leads you in one direction or another But what about the Sapir-Whorf hypothesis, that says there are some thoughts you can express in one language that you cannot express in another?
20 20 Church's Conjecture In computer science we have the following assertion: Church's Conjecture: Any computation for which there exists an effective procedure can be realized by a Turing machine Anything can be done in any language, but it may simply be easier or more efficient to use one language or another Would you want to write an event-driven GUI interface in Turing machine? Bottom line: Languages lead you, but do not prevent you from going anywhere you want
21 21 Imperative Programming Imperative programming is the traditional model of computation: State / Variables / Assignment / Loops A processing unit is separate from memory, and acts upon memory: The computer is the data manager Wandering through memory, pulling values in memory slots Transforming them in some manner, and pushing results back in some other slots Although this is exactly what happens inside a computer, it is not the way people do for solving problems
22 22 Visualization of Imperative Programming Sometimes called the pigeon-hole model of computation: i: j: 2 3 x: 47 a[1]: a[2]: a[3]: a[4]:
23 23 Why Not Build a Program out of Computers? Alan Kay thought about this conventional design of the computer, and asked: Why we constructed the whole out of pieces that were useless by themselves Why not build a whole out of pieces that were similar at all levels of detail? (think of fractals) Idea: A program can be build out of little computing agents
24 24 Recursive Design The structure of the part mirrors the structure of the larger unit:
25 25 Kay's Description of Object- Oriented Programming Object-oriented programming is based on the principle of recursive design: 1. Everything is an object 2. Objects perform computation by making requests of each other through the passing of messages 3. Every object has it's own memory, which consists of other objects 4. Every object is an instance of a class. A class groups similar objects 5. The class is the repository for behavior associated with an object 6. Classes are organized into singly-rooted tree structure, called an inheritance hierarchy We can illustrate these principles by considering how we go about solving a problem in real life
26 26 Illustration of OOP Concepts -- Sending Flowers to a Friend To illustrate the concepts of OOP in an easily understood framework, consider the problem of sending flowers to a friend who lives in a different city: Chris is sending flowers to Robin. Chris can't deliver them directly. So Chris uses the services of the local Florist. Chris tells the Florist (named Fred) the address for Robin, how much to spend, and the type of flowers to send. Fred contacts a florist in Robins city, who arranges the flowers, then contacts a driver, who delivers the flowers If we start to think about it, there may even be other people involved in this transaction: There is the flower grower, perhaps somebody in charge of arrangements, and so on.
27 27 Agents and Communities Our first observation is that results are achieved through the interaction of agents, which we will call objects Furthermore, any nontrivial activity requires the interaction of an entire community of objects working together Each object has a part to play, a service they provide to the other members of the community Gardeners Robin Delivery Person Flower Arranger Grower Chris Fred Wholesaler Robbin's Florist
28 28 Elements of OOP - Objects Kay's first principle: 1) Everything is an object Actions in OOP are performed by agents, called instances or objects There are many agents working together in our scenario We have Chris, Robin, the florist, the florist in Robins city, the driver, the flower arranger, and the grower Each agent has a part to play, and the result is produced when all work together in the solution of a problem
29 29 Elements of OOP - Messages And the second principle: 2) Objects perform computation by making requests of each other through the passing of messages Actions in OOP are produced in response to requests for actions, called messages An instance may accept a message, and in return will perform an action and return a value To begin the process of sending the flowers, Chris gives a message to Fred. Fred in turn gives a message to the florist in Robins city, who gives another message to the driver, and so on
30 30 Information Hiding Notice that the user of a service being provided by an object, need only know the name of the messages that the object will accept The user need not know how the actions is performed Having accepted a message, an object is responsible for carrying it out
31 31 Elements of OOP - Receivers Messages differ from traditional function calls in two very important respects: In a message there is a designated receiver that accepts the message The interpretation of the message may be different, depending upon the receiver
32 32 Different Receivers, Same Message, Different Actions var Fred : Florist; Elizabeth : Friend; Ken : Dentist; begin Fred.sendFlowersTo(myFriend); { will work } Elizabeth.sendFlowersTo(myFriend); { will also work } Ken.sendFlowersTo(myFriend); { will probably not work } end; The same message will result in different actions, depending upon who it is given to
33 33 Behavior and Interpretation Although different objects may accept the same message, The actions (behavior) the object will perform will likely be different The determination of what behavior to perform may be made at run-time, a form of late binding The fact that the same name can mean two entirely different operations is one form of polymorphism
34 34 Elements of OOP Recursive Design 3) Every object has it's own memory, which consists of other objects. Each object is like a miniature computer itself - a specialized processor performing a specific task
35 35 Non-interference It is important that objects be allowed to perform their task however they see fit, without unnecessary interactions or interference with other objects. Instead of a bit-grinding processor... plundering data structures, we have a universe of well-behaved object that courteously ask each other to carry out their various desires -- Dan Ingalls
36 36 Ask not what you can do to your data structures, but ask what your data structures can do for you -- Timothy A. Budd
37 37 Elements of OOP - Classes 4) Every object is an instance of a class. A class groups similar objects. 5) The class is the repository for behavior associated with an object. The behavior I expect from Fred is determined from a general idea I have of the behavior of Florists We say Fred is an instance of the class Florist Behavior is associated with classes, not with individual instances All objects that are instances of a class use the same method in response to similar messages
38 38 Hierarchies of Categories But there is more that I know about Fred then just that he is a Florist I know he is a Shopkeeper, and a Human, and a Mammal, and a Material Objects, and so on At each level of abstraction I have certain information recorded That information is applicable to all lower (more specialized) levels Material Object Animal Mammal Human Shopkeeper Florist
39 39 Class Hierarchies Material Object Living Thing Non-Living Thing Animal Plant Rock Reptile Mammal Air Human Being Cat Dog Platypus Dentist Shopkeeper Artist Ken Flo Beth
40 40 Elements of OOP - Inheritance 6) Classes are organized into a singly-rooted tree structure, called an inheritance hierarchy Information (data and/or behavior) associated with one level of abstraction in a class hierarchy is automatically applicable to lower levels of the hierarchy
41 41 Elements of OOP - Overriding Subclasses can alter or override information inherited from parent classes: All mammals give birth to live young A platypus is an egg-laying mammal Inheritance combined with overriding are where most of the power of OO originates
42 42 Computing as Simulation The OOP view of computation is similar to creating a universe of interacting computing objects Similar to the way in which a committee or club might be organized Also very similar to a style of simulation called discrete event-driven simulation Easily under estimated advantage of this view -- power of metaphor
43 43 Metaphor and Problem Solving Because the OOP view is similar to the way in which people go about solving problems in real life (finding another agent to do the real work!), intuition, ideas, and understanding from everyday experience can be brought to bear on computing On the other hand, common sense was seldom useful when computers were viewed in the processstate model, since few people solve their everyday problems using pigeon-holes
44 44 From Newsweek Unlike the usual programming method -- writing software one line at a time-- NeXT's object-oriented system offers larger building blocks that developers can quickly assemble the way a kid builds faces on Mr. Potato Head.
45 45 Summary Object-oriented programming is not simply features added to a programming language. Rather, it is a new way of thinking Object-oriented programming views a program as a community of agents, termed objects Each object is responsible for a specific task An object is an encapsulation of state (data values) and behavior (operations) The behavior of objects is dictated by the object s class An object will exhibit its behavior by invoking a method (similar to executing a procedure) in response to a message Objects and classes extend the concept of abstract data types by adding the notion of inheritance
CITS2210. Object-Oriented Programming. Topic 1. Introduction and Fundamentals: Thinking Object-Oriented
CITS2210 Object-Oriented Programming Topic 1. Introduction and Fundamentals: Thinking Object-Oriented Summary: This topic considers the fundamental concepts behind object orientation, and why they are
More informationFundamental Concepts (Principles) of Object Oriented Programming These slides are based on:
1 Fundamental Concepts (Principles) of Object Oriented Programming These slides are based on: [1] Timothy A. Budd, Oregon State University, Corvallis, Oregon, [Available] ClickMe, September 2001. 2 What
More informationObject-oriented perspective
Starting Reader #2 Object-oriented perspective Operating system = computer interface Shell/libraries/system calls = OS interface Will return to OS topics in upcoming lectures. Now: OO intro. Objects l
More informationInheritance and Substitution גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Inheritance and Substitution גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we will start to investigate the concepts of inheritance and substitution: The intuitive and practical
More informationStatic and Dynamic Behavior לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Static and Dynamic Behavior לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון 22 Roadmap In this chapter we will examine how differences in static and dynamic features effect object-oriented programming
More informationStatic and Dynamic Behavior עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מובסס על הרצאות של אותו קורס שניתן בשנים הקודמות ע "י ד"ר גרא וייס
Static and Dynamic Behavior עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מובסס על הרצאות של אותו קורס שניתן בשנים הקודמות ע "י ד"ר גרא וייס 2 Roadmap In this chapter we will examine how differences
More informationInheritance and Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מובסס על הרצאות של אותו קורס שניתן בשנים הקודמות ע"י ד"ר גרא וייס
Inheritance and Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מובסס על הרצאות של אותו קורס שניתן בשנים הקודמות ע"י ד"ר גרא וייס 2 Roadmap In this chapter we will start to investigate the
More informationClasses and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות
Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות 2 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static,
More informationUnderlying computer system = hardware + software
Underlying computer system = hardware + software Thanks to Chandra Krintz and Kevin Sanft, for this figure and some other parts of these lecture notes. Processing data & instructions Program instructions
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationClasses and Methods לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Classes and Methods לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון 22 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static, compile time representation of object-oriented
More informationIntroduction and Review of Java: Part 2
Introduction and Review of Java: Part 2 Fundamental Concepts (Principles) of Object Oriented Programming Java s implementation of Object Oriented Programming 1of 59 WHAT IS OBJECT ORIENTED PROGRAMMING?
More informationOverloading המחלקה למדעי המחשב עזאם מרעי אוניברסיטת בן-גוריון
Overloading עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we will investigate the idea of overloading: Overloading based on scopes Overloading based on type signatures Coercion,
More informationA STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN
A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN GARJE RAKESH RAMESHRAO RESEARCH SCHOLAR, DEPT. OF COMPUTER SCIENCE CMJ UNIVERSITY, SHILLONG, MEGHALAYA INTRODUCTION Object-oriented Analysis and Design is
More informationObject- Oriented Design with UML and Java Part I: Fundamentals
Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html
More informationMulti-Paradigm Approach for Teaching Programming
Multi-Paradigm Approach for Teaching Laxmi P Gewali* and John T Minor School of Computer Science University of Nevada, Las Vegas 4505 Maryland Parkway, Las Vegas Nevada 89154 Abstract: Selecting an appropriate
More informationOverriding המחלקה למדעי המחשב עזאם מרעי אוניברסיטת בן-גוריון
Overriding עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap A method in a child class overrides a method in the parent class if it has the same name and type signature: Parent void method(int,float)
More informationClasses and Methods גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Classes and Methods גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static, compile time representation of object-oriented
More informationObject-Oriented Programming
Object-Oriented Programming CS420/520 Winter 2012 Prof Andrew P. Black 1 Administrivia Instructor: Andrew Black, 503 725 2411 (office) 503 803 1669 (cell). email: black@cs.pdx.edu, put [CS520] in subject
More informationThe Essence of Object Oriented Programming with Java and UML. Chapter 2. The Essence of Objects. What Is an Object-Oriented System?
Page 1 of 21 Page 2 of 21 and identity. Objects are members of a class, and the attributes and behavior of an object are defined by the class definition. The Essence of Object Oriented Programming with
More informationCHAPTER 5 GENERAL OOP CONCEPTS
CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should
More informationComputer Science 32 Object-Oriented Oriented Design and Implementation (in C++ on Linux)
Computer Science 32 Object-Oriented Oriented Design and Implementation (in C++ on Linux) Pre-requisite: CS 24 So already know much C++ including object-based fundamentals: classes and ADTs Also familiar
More information6.001 Notes: Section 1.1
6.001 Notes: Section 1.1 Slide 1.1.1 This first thing we need to do is discuss the focus of 6.001. What is this course all about? This seems quite obvious -- this is a course about computer science. But
More informationCSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN
What languages do you know? CSC 326H1F, Programming Languages The usual suspects: C, C++, Java fine languages nearly the same Perhaps you've also learned some others? assembler Basic, Visual Basic, Turing,
More informationIntroduction. Object-Oriented Programming Spring 2015
Introduction Object-Oriented Programming 236703 Spring 2015 1 Course Staff Lecturer in charge: Prof. Eran Yahav Lecturer: Eran Gilad TA in charge: Nurit Moscovici TAs: Helal Assi, Eliran Weiss 3 Course
More informationAn Overview of Visual Basic.NET: A History and a Demonstration
OVERVIEW o b j e c t i v e s This overview contains basic definitions and background information, including: A brief history of programming languages An introduction to the terminology used in object-oriented
More informationParadise Lost: Almost Nobody Knows What s Really Happening Inside a Modern Software Application
Paradise Lost: Almost Nobody Knows What s Really Happening Inside a Modern Software Application In the 1980s, with the advent of interactive software such as Macintosh and Windows, and with widespread
More informationObject-Oriented Programming in C++/Handout 01 Page 1 of 8
Object-Oriented Programming in C++/Handout 01 Page 1 of 8 Table of Contents Table of Contents... 1 Learning Objectives... 2 Object-Oriented Approach... 2 Advantages of Object-Oriented Approach... 2 Principles
More informationA Brief History of Computer Science
A Brief History of Computer Science 4700 Hundred years ago Sumerians invented the abacus Sand, lines, pebbles Sexagesimal Base 60 still used today Time, distance How do you count like that? Side trip Factors
More informationAbstraction עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Abstraction עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Tools for Programming Complex Software Fundamentally, people use only a few simple tools to create, understand, or manage complex systems
More informationGrade Weights. Language Design and Overview of COOL. CS143 Lecture 2. Programming Language Economics 101. Lecture Outline
Grade Weights Language Design and Overview of COOL CS143 Lecture 2 Project 0% I, II 10% each III, IV 1% each Midterm 1% Final 2% Written Assignments 10% 2.% each Prof. Aiken CS 143 Lecture 2 1 Prof. Aiken
More informationLecturer: William W.Y. Hsu. Programming Languages
Lecturer: William W.Y. Hsu Programming Languages Chapter 9 Data Abstraction and Object Orientation 3 Object-Oriented Programming Control or PROCESS abstraction is a very old idea (subroutines!), though
More informationWELCOME! (download slides and.py files and follow along!) LECTURE 1
WELCOME! (download slides and.py files and follow along!) 6.0001 LECTURE 1 6.0001 LECTURE 1 1 TODAY course info what is computation python basics mathematical operations python variables and types NOTE:
More informationLecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson
Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson January 13, 2005 January 18, 2005 1 of 38 Lecture Goals Introduce the basic concepts of object-oriented analysis/design/programming
More information1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation
1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/h18
More information1DL321: Kompilatorteknik I (Compiler Design 1)
Administrivia 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/ht16
More informationCS112 Lecture: Defining Instantiable Classes
CS112 Lecture: Defining Instantiable Classes Last revised 2/3/05 Objectives: 1. To describe the process of defining an instantiable class 2. To discuss public and private visibility modifiers. Materials:
More informationWhat is a programming language?
Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? What is a programming language?...there is no agreement on what a programming language
More informationCSE Theory of Computing Fall 2017 Project 4-Combinator Project
CSE 30151 Theory of Computing Fall 2017 Project 4-Combinator Project Version 1: Nov. 20, 2017 1 Overview At this point you understand computations that happen as planned series of individual steps where
More information6.001 Notes: Section 8.1
6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything
More informationObject-Oriented Technology. Rick Mercer
Object-Oriented Technology Rick Mercer 1 Object-Oriented Technology: Outline Consider a few ways in which data is protected from careless modification Mention the key features object-oriented style of
More informationLecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction
Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO
More informationLecture 2: Software Engineering (a review)
Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is
More information2.4 Structuring programs
2.4 Structuring programs While theoretically a program could be written as one big expression, in reality we want some structure so that l The programmer has it easier to read the program l A compiler
More informationPROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING
PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING JAN BARTONÍČEK This paper's goal is to briefly explain the basic theory behind programming languages and their history
More informationMODERN PROGRAMMING LANGUAGE TECHNIQUES Dilawar 1 1 Ch. Mani Ram Godara Govt. College For Women, Bhodia Khera, Fatehabad, INDIA dilawarfatehabad@gmail.com Abstract--This paper focus on introduction of computer
More informationAgent Design Example Problems State Spaces. Searching: Intro. CPSC 322 Search 1. Textbook Searching: Intro CPSC 322 Search 1, Slide 1
Searching: Intro CPSC 322 Search 1 Textbook 3.0 3.3 Searching: Intro CPSC 322 Search 1, Slide 1 Lecture Overview 1 Agent Design 2 Example Problems 3 State Spaces Searching: Intro CPSC 322 Search 1, Slide
More informationFractal Data Modeling
Fractal Data Modeling Fractal geometry creates beautiful patterns from simple recursive algorithms. One of the things we find so appealing is their self- similarity at different scales. That is, as you
More informationLecture 5: The Halting Problem. Michael Beeson
Lecture 5: The Halting Problem Michael Beeson Historical situation in 1930 The diagonal method appears to offer a way to extend just about any definition of computable. It appeared in the 1920s that it
More informationImplications of Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Implications of Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we will investigate some of the implications of the principle of substitution in statically typed
More informationH1 Spring C. A service-oriented architecture is frequently deployed in practice without a service registry
1. (12 points) Identify all of the following statements that are true about the basics of services. A. Screen scraping may not be effective for large desktops but works perfectly on mobile phones, because
More informationTOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1
TOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1 ABSTRACT Test-Driven Development is a design strategy where a set of tests over a class is defined prior to the implementation of that class. The goal
More information1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation
1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page (of previous year):
More informationIntroduction. Object Orientated Analysis and Design. Benjamin Kenwright
Introduction Object Orientated Analysis and Design Benjamin Kenwright Outline What do we mean by Object Orientated? Why do we need to analyze and design our solutions? Give examples What analysis and design
More informationObject-Oriented and Classical Software Engineering
Slide 1.1 CHAPTER 1 Slide 1.2 Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 THE SCOPE OF SOFTWARE ENGINEERING Stephen R. Schach Outline Slide 1.3 Outline (contd)
More informationECOM 2314 COMPUTER PROGRAMMING II
ECOM 2314 COMPUTER PROGRAMMING II Object Oriented Programming with JAVA Instructor: Ruba A. Salamh Islamic University of Gaza Course Description The course is a continuation of ECOM 2314 (computer programming
More information1. Write two major differences between Object-oriented programming and procedural programming?
1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:
More informationObject-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Object-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Why Start with Design? Object-oriented thinking begins with objectoriented design It is the easiest way to see the problems of
More informationChapter 9 :: Data Abstraction and Object Orientation
Chapter 9 :: Data Abstraction and Object Orientation Programming Language Pragmatics Michael L. Scott Control or PROCESS abstraction is a very old idea (subroutines!), though few languages provide it in
More informationBCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT
BCS THE CHARTERED INSTITUTE FOR IT BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT March 2015 EXAMINERS' REPORT Programming Paradigms General comments on candidates'
More informationObject-Oriented and Classical Software Engineering
Object-Oriented and Classical Software Engineering Slide 1.1 Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach srs@vuse.vanderbilt.edu CHAPTER 1 Slide 1.2 THE SCOPE OF SOFTWARE ENGINEERING 1 Outline
More informationPolymorphism. Arizona State University 1
Polymorphism CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 15 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University
More informationREVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES
REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES Hristo Hristov Abstract. In the article, we have reviewed the
More informationProgrammazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable
More information(Refer Slide Time 3:31)
Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions
More informationAdvances in Programming Languages
T O Y H Advances in Programming Languages APL1: What s so important about language? Ian Stark School of Informatics The University of Edinburgh Tuesday 16 September 2014 Semester 1 Week 1 E H U N I V E
More informationProgramming Languages 2nd edition Tucker and Noonan"
Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "
More informationLecture 1: Overview
15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant
More informationIntroduction to Programming Languages and Compilers. CS164 11:00-12:30 TT 10 Evans. UPRM ICOM 4029 (Adapted from: Prof. Necula UCB CS 164)
Introduction to Programming Languages and Compilers CS164 11:00-12:30 TT 10 Evans 1 ICOM 4036 - Outline Prontuario Course Outline Brief History of PLs Programming Language Design Criteria Programming Language
More informationCOURSE OVERVIEW. Introduction to Computer Engineering 2015 Spring by Euiseong Seo
COURSE OVERVIEW Introduction to Computer Engineering 2015 Spring by Euiseong Seo Course Objectives Introduction to computer engineering For computer engineer-wannabe For students studying other fields
More informationProgramming Paradigms
Programming Paradigms Programming languages A Programming language is a notational system for describing tasks/computations in a machine and human readable form. Most computer languages are designed to
More informationWhat Is Computer Science? The Scientific Study of Computation. Expressing or Describing
What Is Computer Science? The Scientific Study of Computation CMPSCI 630: Programming Languages Introduction Spring 2009 (with thanks to Robert Harper) Expressing or Describing Automating Understanding
More informationSets. Sets. Examples. 5 2 {2, 3, 5} 2, 3 2 {2, 3, 5} 1 /2 {2, 3, 5}
Sets We won t spend much time on the material from this and the next two chapters, Functions and Inverse Functions. That s because these three chapters are mostly a review of some of the math that s a
More informationLecture Notes on Programming Languages
Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered
More informationCPS122 Lecture: Detailed Design and Implementation
CPS122 Lecture: Detailed Design and Implementation Objectives: Last revised March 3, 2017 1. To introduce the use of a complete UML class box to document the name, attributes, and methods of a class 2.
More informationCOP 3330 Final Exam Review
COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time
More informationThe object-oriented approach goes a step further by providing tools for the programmer to represent elements in the problem space.
1 All programming languages provide abstractions. Assembly language is a small abstraction of the underlying machine. Many imperative languages (FORTRAN, BASIC, and C) are abstractions of assembly language.
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationCS457/557 Functional Languages
CS457/557 Functional Languages Spring 2018 Lecture 1: Course Introduction Andrew Tolmach Portland State University (with thanks to Mark P. Jones) 1 Goals of this course Introduce the beautiful ideas of
More informationObject interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Object interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we move up a level of abstraction, and consider collections of objects working together Our focus will
More informationCPS 506 Comparative Programming Languages. Programming Language
CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support
More informationThe Sun s Java Certification and its Possible Role in the Joint Teaching Material
The Sun s Java Certification and its Possible Role in the Joint Teaching Material Nataša Ibrajter Faculty of Science Department of Mathematics and Informatics Novi Sad 1 Contents Kinds of Sun Certified
More informationCurriculum Mapping for National Curriculum Statement Grades R-12 and Oracle Academy.
Curriculum Mapping for National Curriculum Statement Grades R-12 and Oracle Academy. Contents Executive Summary... 3 IT Curriculum Overview... 3 Aims... 3 Oracle Academy Introduction to Computer Science...
More informationProject 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently.
Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple movie data system. Milestones: 1. Use
More informationMore OO Fundamentals. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 4 09/11/2012
More OO Fundamentals CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 4 09/11/2012 1 Goals of the Lecture Continue a review of fundamental object-oriented concepts 2 Overview of OO Fundamentals
More informationExtreme programming XP 6
Extreme programming XP 6 Planning Game 3 Planning Game Independent: Stories should be as independent as possible. When thinking of independence it is often easier to think of order independent. In other
More informationCS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class
CS112 Lecture: Defining Classes Last revised 2/3/06 Objectives: 1. To describe the process of defining an instantiable class Materials: 1. BlueJ SavingsAccount example project 2. Handout of code for SavingsAccount
More informationChapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language
Categories of languages that support OOP: 1. OOP support is added to an existing language - C++ (also supports procedural and dataoriented programming) - Ada 95 (also supports procedural and dataoriented
More informationChapter 4C Homework Functions III Individual Assignment 30 Points Questions 6 Points Script 24 Points
PCS1-Ch-4C-Functions-3-HW.docx CSCI 1320 Initials P a g e 1 If this lab is an Individual assignment, you must do all coded programs on your own. You may ask others for help on the language syntax, but
More information9.1 OO Methodology OO Design Object
1 9.1 OO Methodology OO Design A problem-solving methodology that produces a solution to a problem in terms of self-contained entities called objects Object A thing or entity that makes sense within the
More informationSo far, we have seen two different approaches for using computing to solve problems:
Chapter 10 Objects By the word operation, we mean any process which alters the mutual relation of two or more things, be this relation of what kind it may. This is the most general definition, and would
More informationChapter 10 :: Data Abstraction and Object Orientation
Chapter 10 :: Data Abstraction and Object Orientation Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier Chapter10_Data_Abstraction_and_Object_Orientation_4e 1 Object-Oriented
More informationCSE Theory of Computing Fall 2017 Project 1-SAT Solving
CSE 30151 Theory of Computing Fall 2017 Project 1-SAT Solving Version 3: Sept. 21, 2017 The purpose of this project is to gain an understanding of one of the most central problems of computing: Boolean
More informationInheritance and Substitution (Budd chapter 8, 10)
Inheritance and Substitution (Budd chapter 8, 10) 1 2 Plan The meaning of inheritance The syntax used to describe inheritance and overriding The idea of substitution of a child class for a parent The various
More informationConcepts of Programming Languages
Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014
More informationKnowledge representation Semantic networks and frames
Knowledge representation Semantic networks and frames CmSc310 Artificial Intelligence 1. Introduction: What is knowledge? The science that studies various issues about knowledge is called epistemology.
More informationManaging Change and Complexity
Managing Change and Complexity The reality of software development Overview Some more Philosophy Reality, representations and descriptions Some more history Managing complexity Managing change Some more
More informationData Structures (list, dictionary, tuples, sets, strings)
Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in brackets: l = [1, 2, "a"] (access by index, is mutable sequence) Tuples are enclosed in parentheses: t = (1, 2, "a") (access
More informationProject #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.
Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple magazine data system. Milestones:
More informationComputer Science 9608 (Notes) Chapter: 4.1 Computational thinking and problem-solving
UWhat is Computational Thinking? Computational thinking (CT) involves a set of skills and techniques that software engineers use to write programs that underlie the computer applications you use such as
More information